// 完整的Spring Boot主应用类
package com.newsanalysis;

import com.newsanalysis.model.entity.User;
import com.newsanalysis.service.UserService;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.scheduling.annotation.EnableScheduling;

import java.time.LocalDateTime;

@SpringBootApplication
@EnableScheduling
public class NewsAnalysisApplication {

    public static void main(String[] args) {
        SpringApplication.run(NewsAnalysisApplication.class, args);
    }
    
    /**
     * 初始化管理员账号
     */
    @Bean
    public CommandLineRunner initAdminUser(UserService userService) {
        return args -> {
            // 检查是否已存在管理员账号
            if (!userService.existsByUsername("admin")) {
                // 创建管理员账号
                User adminUser = User.builder()
                        .username("admin")
                        .password("admin123") // 服务层会进行加密
                        .email("admin@example.com")
                        .role("ADMIN")
                        .createTime(LocalDateTime.now())
                        .updateTime(LocalDateTime.now())
                        .build();
                
                userService.register(adminUser);
                
                System.out.println("管理员账号初始化完成，用户名: admin, 密码: admin123");
            }
            
            // 检查是否已存在普通用户账号
            if (!userService.existsByUsername("user")) {
                // 创建普通用户账号
                User normalUser = User.builder()
                        .username("user")
                        .password("user123") // 服务层会进行加密
                        .email("user@example.com")
                        .role("USER")
                        .createTime(LocalDateTime.now())
                        .updateTime(LocalDateTime.now())
                        .build();
                
                userService.register(normalUser);
                
                System.out.println("普通用户账号初始化完成，用户名: user, 密码: user123");
            }
        };
    }
}

